## pval_cutoff: 0.05
## lfc_cutoff: 0.58
## low_counts_cutoff: 10

General statistics

# Number of samples
length(counts_data)
## [1] 6
# Number of genes
nrow(counts_data)
## [1] 43432
# Total counts
colSums(counts_data)
## SRR13535276 SRR13535278 SRR13535280 SRR13535288 SRR13535290 SRR13535292 
##     2902259     2219026     3493884     7398768     5917922     3444284

Create DDS objects

# Create DESeqDataSet object
dds <- get_DESeqDataSet_obj(counts_data, ~ experimental_class_type)
## [1] TRUE
## [1] TRUE
## [1] "DESeqDataSet object of length 43432 with 0 metadata columns"
## [1] "DESeqDataSet object of length 13987 with 0 metadata columns"
colData(dds)
## DataFrame with 6 rows and 3 columns
##             experimental_class_type                   regime         treatment
##                            <factor>                 <factor>       <character>
## SRR13535276                       A in space without gravity without nanoceria
## SRR13535278                       A in space without gravity without nanoceria
## SRR13535280                       A in space without gravity without nanoceria
## SRR13535288                       C    in space with gravity without nanoceria
## SRR13535290                       C    in space with gravity without nanoceria
## SRR13535292                       C    in space with gravity without nanoceria

Sample-to-sample comparisons

# Transform data (blinded rlog)
rld <- get_transformed_data(dds)

PCA plot

pca <- rld$pca
pca_df <- cbind(as.data.frame(colData(dds)) %>% rownames_to_column(var = 'name'), pca$x)
summary(pca)
## Importance of components:
##                            PC1     PC2     PC3     PC4     PC5       PC6
## Standard deviation     28.6351 27.8673 24.5344 22.1853 19.6117 7.713e-14
## Proportion of Variance  0.2666  0.2525  0.1957  0.1600  0.1251 0.000e+00
## Cumulative Proportion   0.2666  0.5192  0.7149  0.8749  1.0000 1.000e+00
ggplot(pca_df, aes(x = PC1, y = PC2, color = regime)) +
  geom_point() +
  geom_text(aes(label = name), position = position_nudge(y = -2), show.legend = F, size = 3) +
  scale_color_manual(values = colors_default) +
  scale_x_continuous(expand = c(0.2, 0))

Correlation heatmap

pheatmap(
  cor(rld$matrix),
  annotation_col = as.data.frame(colData(dds)) %>% select(regime),
  color = brewer.pal(8, 'YlOrRd')
)

Wald test results

# DE analysis using Wald test
dds_full <- DESeq(dds)
colData(dds_full)
## DataFrame with 6 rows and 4 columns
##             experimental_class_type                   regime         treatment        sizeFactor
##                            <factor>                 <factor>       <character>         <numeric>
## SRR13535276                       A in space without gravity without nanoceria 0.673801824016173
## SRR13535278                       A in space without gravity without nanoceria  0.97121858611263
## SRR13535280                       A in space without gravity without nanoceria  0.77562985499244
## SRR13535288                       C    in space with gravity without nanoceria  1.89546097064371
## SRR13535290                       C    in space with gravity without nanoceria  1.29594739319281
## SRR13535292                       C    in space with gravity without nanoceria 0.812357407878325
# Wald test results
res <- results(
  dds_full,
  contrast = c('experimental_class_type', condition, control),
  alpha = pval_cutoff
)
res
## log2 fold change (MLE): experimental_class_type A vs C 
## Wald test p-value: experimental class type A vs C 
## DataFrame with 13987 rows and 6 columns
##                            baseMean     log2FoldChange             lfcSE               stat             pvalue              padj
##                           <numeric>          <numeric>         <numeric>          <numeric>          <numeric>         <numeric>
## ENSMUSG00000098104 5.20716062255672   1.08810637571714 0.957175548824469   1.13678872914532  0.255626616142461                NA
## ENSMUSG00000103922 2.18954147307282 -0.284634439393815  1.93793841325912 -0.146874863229081  0.883230792960984                NA
## ENSMUSG00000033845 170.916987771633  -0.41826769983573 0.538548289993934 -0.776657743803144  0.437360723667909 0.902222072616056
## ENSMUSG00000102275  2.2584386859628  0.168849091861702  1.34831458932878  0.125229744748041  0.900341669693715                NA
## ENSMUSG00000025903 144.933745022753  -0.15890026936109 0.300848357125726 -0.528173964050217  0.597378598370545 0.934654723787112
## ...                             ...                ...               ...                ...                ...               ...
## ENSMUSG00000095562 31.0099628974416 -0.837900153922194 0.807591999131932  -1.03752904291132  0.299489367669032 0.851726154360615
## ENSMUSG00000051412 1248.66836212848  -1.30495436917363  0.61195729731387  -2.13242717245404 0.0329717455765186 0.477463942938155
## ENSMUSG00000061654 90.6837939336194  -5.68609043903014  3.75938089673388  -1.51250713753697                 NA                NA
## ENSMUSG00000079834 57.7849565580819 -0.214786525835995 0.527699645995211  -0.40702419921264  0.683990214859256 0.951306026630298
## ENSMUSG00000096768 365.449663551056 -0.365749519073591 0.604848546095957 -0.604696037436728  0.545380981535452 0.928207309730241
mcols(res)
## DataFrame with 6 rows and 2 columns
##                        type                                            description
##                 <character>                                            <character>
## baseMean       intermediate              mean of normalized counts for all samples
## log2FoldChange      results log2 fold change (MLE): experimental_class_type A vs C
## lfcSE               results         standard error: experimental class type A vs C
## stat                results         Wald statistic: experimental class type A vs C
## pvalue              results      Wald test p-value: experimental class type A vs C
## padj                results                                   BH adjusted p-values
summary(res)
## 
## out of 13987 with nonzero total read count
## adjusted p-value < 0.05
## LFC > 0 (up)       : 7, 0.05%
## LFC < 0 (down)     : 62, 0.44%
## outliers [1]       : 122, 0.87%
## low counts [2]     : 2709, 19%
## (mean count < 7)
## [1] see 'cooksCutoff' argument of ?results
## [2] see 'independentFiltering' argument of ?results

Summary details

# Upregulated genes (LFC > 0)
res_sig_df %>% filter(log2FoldChange > 0)
# Downregulated genes (LFC < 0)
res_sig_df %>% filter(log2FoldChange < 0)
# Outliers (pvalue and padj are NA)
res[which(is.na(res$pvalue)), ]
## log2 fold change (MLE): experimental_class_type A vs C 
## Wald test p-value: experimental class type A vs C 
## DataFrame with 122 rows and 6 columns
##                            baseMean    log2FoldChange            lfcSE              stat    pvalue      padj
##                           <numeric>         <numeric>        <numeric>         <numeric> <numeric> <numeric>
## ENSMUSG00000103509 9.65154098423442 -4.47709636694479 2.50281449786898 -1.78882468946732        NA        NA
## ENSMUSG00000079554 38.5290937983429 -6.57838563802182 2.02665383587185  -3.2459345160896        NA        NA
## ENSMUSG00000102425 25.5762517386943  6.47326709333826 3.47959671778327  1.86034981015333        NA        NA
## ENSMUSG00000042793 62.6834254269681 -5.87668103057092 1.71537758224308 -3.42588191160013        NA        NA
## ENSMUSG00000104436 35.5636553635441  2.34224390815926 1.82393751516655  1.28416894147022        NA        NA
## ...                             ...               ...              ...               ...       ...       ...
## ENSMUSG00000035395 31.1250871524031 -4.85792774790197 1.75657246832868 -2.76557206462658        NA        NA
## ENSMUSG00000079481  16.294613817476 -6.16684864174885 2.39485047018837  -2.5750453811272        NA        NA
## ENSMUSG00000047045 64.0513713809498 -1.25589064636123 1.03088501203652 -1.21826453163792        NA        NA
## ENSMUSG00000046873 209.511041049578 -2.16804330763267 1.07471530586321 -2.01731872227435        NA        NA
## ENSMUSG00000061654 90.6837939336194 -5.68609043903014 3.75938089673388 -1.51250713753697        NA        NA
# Low counts (only padj is NA)
res[which(is.na(res$padj) & !is.na(res$pvalue)), ]
## log2 fold change (MLE): experimental_class_type A vs C 
## Wald test p-value: experimental class type A vs C 
## DataFrame with 2709 rows and 6 columns
##                            baseMean      log2FoldChange             lfcSE                stat            pvalue      padj
##                           <numeric>           <numeric>         <numeric>           <numeric>         <numeric> <numeric>
## ENSMUSG00000098104 5.20716062255672    1.08810637571714 0.957175548824469    1.13678872914532 0.255626616142461        NA
## ENSMUSG00000103922 2.18954147307282  -0.284634439393815  1.93793841325912  -0.146874863229081 0.883230792960984        NA
## ENSMUSG00000102275  2.2584386859628   0.168849091861702  1.34831458932878   0.125229744748041 0.900341669693715        NA
## ENSMUSG00000103280 3.07253241661049  -0.649675189617721  1.17510855975764   -0.55286397518176 0.580356557188648        NA
## ENSMUSG00000033740 2.70537289783242   -2.69693861716501  2.48269071566368   -1.08629665392858 0.277347766932786        NA
## ...                             ...                 ...               ...                 ...               ...       ...
## ENSMUSG00000047757 2.06326311873781     0.5980254818538  1.64690604326327   0.363120582561493 0.716514809843951        NA
## ENSMUSG00000040621 4.80775812312957 0.00527243772150041  1.37489312970248 0.00383479821638307 0.996940281208562        NA
## ENSMUSG00000087340  3.5063700475092   0.546145384863663  1.22534731956703   0.445706597747846 0.655809198089475        NA
## ENSMUSG00000087201 1.24948752726328   -2.29630894026919   2.1121388457669   -1.08719601690552 0.276950190752603        NA
## ENSMUSG00000081137 3.15865573469166    1.37083695359083  1.29288937165862    1.06028944443422 0.289012939889842        NA

Shrunken LFC results

plotMA(res)

# Shrunken LFC results
res_shrunken <- lfcShrink(
  dds_full,
  coef = str_c('experimental_class_type_', condition, '_vs_', control),
  type = 'apeglm'
)
res_shrunken
## log2 fold change (MAP): experimental class type A vs C 
## Wald test p-value: experimental class type A vs C 
## DataFrame with 13987 rows and 5 columns
##                            baseMean       log2FoldChange             lfcSE             pvalue              padj
##                           <numeric>            <numeric>         <numeric>          <numeric>         <numeric>
## ENSMUSG00000098104 5.20716062255672   0.0404896354583624 0.189952565884354  0.255626616142461 0.832512747364547
## ENSMUSG00000103922 2.18954147307282 -0.00261224918326343 0.186144392956759  0.883230792960984                NA
## ENSMUSG00000033845 170.916987771633  -0.0457921061655939  0.18396101781396  0.437360723667909 0.902904748560427
## ENSMUSG00000102275  2.2584386859628   0.0032508798956198 0.185246924447913  0.900341669693715                NA
## ENSMUSG00000025903 144.933745022753  -0.0450125432612784 0.163789812457455  0.597378598370545 0.935979366124292
## ...                             ...                  ...               ...                ...               ...
## ENSMUSG00000095562 31.0099628974416  -0.0424246017931211  0.18922952988092  0.299489367669032 0.852511625629923
## ENSMUSG00000051412 1248.66836212848   -0.129155978743731 0.246376708158993 0.0329717455765186 0.489113528860005
## ENSMUSG00000061654 90.6837939336194 -0.00697556326514523 0.187166051994795                 NA                NA
## ENSMUSG00000079834 57.7849565580819  -0.0237925292660755 0.178234674618541  0.683990214859256 0.953237907987078
## ENSMUSG00000096768 365.449663551056  -0.0319207757138897 0.182333453921616  0.545380981535452 0.929338213184564
plotMA(res_shrunken)

mcols(res_shrunken)
## DataFrame with 5 rows and 2 columns
##                        type                                            description
##                 <character>                                            <character>
## baseMean       intermediate              mean of normalized counts for all samples
## log2FoldChange      results log2 fold change (MAP): experimental class type A vs C
## lfcSE               results           posterior SD: experimental class type A vs C
## pvalue              results      Wald test p-value: experimental class type A vs C
## padj                results                                   BH adjusted p-values
summary(res_shrunken, alpha = pval_cutoff)
## 
## out of 13987 with nonzero total read count
## adjusted p-value < 0.05
## LFC > 0 (up)       : 6, 0.043%
## LFC < 0 (down)     : 53, 0.38%
## outliers [1]       : 122, 0.87%
## low counts [2]     : 2170, 16%
## (mean count < 5)
## [1] see 'cooksCutoff' argument of ?results
## [2] see 'independentFiltering' argument of ?results

Summary details

# Upregulated genes (LFC > 0)
res_shrunken_sig_df %>% filter(log2FoldChange > 0)
# Downregulated genes (LFC < 0)
res_shrunken_sig_df %>% filter(log2FoldChange < 0)
# Outliers (pvalue and padj are NA)
res_shrunken[which(is.na(res_shrunken$pvalue)), ]
## log2 fold change (MAP): experimental class type A vs C 
## Wald test p-value: experimental class type A vs C 
## DataFrame with 122 rows and 5 columns
##                            baseMean       log2FoldChange             lfcSE    pvalue      padj
##                           <numeric>            <numeric>         <numeric> <numeric> <numeric>
## ENSMUSG00000103509 9.65154098423442  -0.0172389998661714  0.18804638468295        NA        NA
## ENSMUSG00000079554 38.5290937983429  -0.0328640409698524 0.191280261877137        NA        NA
## ENSMUSG00000102425 25.5762517386943  0.00920409787204052 0.187308112337825        NA        NA
## ENSMUSG00000042793 62.6834254269681  -0.0390345160771787 0.193053655417202        NA        NA
## ENSMUSG00000104436 35.5636553635441   0.0208842963647256 0.188164087508974        NA        NA
## ...                             ...                  ...               ...       ...       ...
## ENSMUSG00000035395 31.1250871524031  -0.0352868477104716 0.191815911142853        NA        NA
## ENSMUSG00000079481  16.294613817476  -0.0223907309400847 0.188940874084597        NA        NA
## ENSMUSG00000047045 64.0513713809498  -0.0387216473581504 0.190245275936379        NA        NA
## ENSMUSG00000046873 209.511041049578  -0.0571882685626593 0.198345875439996        NA        NA
## ENSMUSG00000061654 90.6837939336194 -0.00697556326514523 0.187166051994795        NA        NA
# Low counts (only padj is NA)
res_shrunken[which(is.na(res_shrunken$padj) & !is.na(res_shrunken$pvalue)), ]
## log2 fold change (MAP): experimental class type A vs C 
## Wald test p-value: experimental class type A vs C 
## DataFrame with 2170 rows and 5 columns
##                            baseMean       log2FoldChange             lfcSE            pvalue      padj
##                           <numeric>            <numeric>         <numeric>         <numeric> <numeric>
## ENSMUSG00000103922 2.18954147307282 -0.00261224918326343 0.186144392956759 0.883230792960984        NA
## ENSMUSG00000102275  2.2584386859628   0.0032508798956198 0.185246924447913 0.900341669693715        NA
## ENSMUSG00000103280 3.07253241661049  -0.0163189691437432 0.185652787273192 0.580356557188648        NA
## ENSMUSG00000033740 2.70537289783242  -0.0137001068426724 0.187395577902333 0.277347766932786        NA
## ENSMUSG00000103629 3.84572295415489  -0.0165203117879788 0.187513445847095 0.280953475739722        NA
## ...                             ...                  ...               ...               ...       ...
## ENSMUSG00000047757 2.06326311873781  0.00775611859135211 0.186031892423555 0.716514809843951        NA
## ENSMUSG00000040621 4.80775812312957 0.000178020792367815 0.185274884577293 0.996940281208562        NA
## ENSMUSG00000087340  3.5063700475092   0.0125150037444469 0.185479197266707 0.655809198089475        NA
## ENSMUSG00000087201 1.24948752726328  -0.0179112675661988 0.187640884635034 0.276950190752603        NA
## ENSMUSG00000081137 3.15865573469166   0.0285040408269337 0.188340254886495 0.289012939889842        NA

Visualizing results

Heatmaps

# Plot normalized counts (z-scores)
pheatmap(counts_sig_norm[2:7], 
         color = brewer.pal(8, 'YlOrRd'), 
         cluster_rows = T, 
         show_rownames = F,
         annotation_col = as.data.frame(colData(dds)) %>% select(regime),
         border_color = NA,
         fontsize = 10,
         scale = 'row',
         fontsize_row = 10, 
         height = 20)

# Plot log-transformed counts
pheatmap(counts_sig_log[2:7], 
         color = rev(brewer.pal(8, 'RdYlBu')), 
         cluster_rows = T, 
         show_rownames = F,
         annotation_col = as.data.frame(colData(dds)) %>% select(regime),
         border_color = NA,
         fontsize = 10,
         fontsize_row = 10, 
         height = 20)

# Plot log-transformed counts (top 24 DE genes)
pheatmap((counts_sig_log %>% filter(ensembl_gene_id %in% res_sig_df$ensembl_gene_id[1:24]))[2:7],
         color = rev(brewer.pal(8, 'RdYlBu')), 
         cluster_rows = T, 
         show_rownames = F,
         annotation_col = as.data.frame(colData(dds)) %>% select(regime), 
         fontsize = 10,
         fontsize_row = 10, 
         height = 20)

Volcano plots

# Unshrunken LFC
res_df %>% 
  mutate(
    sig_threshold = if_else(
      padj < pval_cutoff & abs(log2FoldChange) >= lfc_cutoff,
      if_else(log2FoldChange > 0, 'DE-up', 'DE-down'),
      'non-DE'
    )
  ) %>% 
  filter(!is.na(sig_threshold)) %>% 
  ggplot() +
  geom_point(aes(x = log2FoldChange, y = -log10(padj), colour = sig_threshold)) +
  scale_color_manual(values = c('blue', 'red', 'gray')) +
  xlab('log2 fold change') + 
  ylab('-log10 adjusted p-value')

# Shrunken LFC
res_shrunken_df %>% 
  mutate(
    sig_threshold = if_else(
      padj < pval_cutoff & abs(log2FoldChange) >= lfc_cutoff,
      if_else(log2FoldChange > 0, 'DE-up', 'DE-down'),
      'non-DE'
    )
  ) %>% 
  filter(!is.na(sig_threshold)) %>% 
  ggplot() +
  geom_point(aes(x = log2FoldChange, y = -log10(padj), colour = sig_threshold)) +
  scale_color_manual(values = c('blue', 'red', 'gray')) +
  xlab('log2 fold change') + 
  ylab('-log10 adjusted p-value')

GSEA (all)

Hallmark genesets

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_h) %>% plot_enrichment_table(rank_lfc, mm_h)

# Wald stat
get_fgsea_res(rank_stat, mm_h) %>% plot_enrichment_table(rank_stat, mm_h)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_h) %>% plot_enrichment_table(rank_pval, mm_h)

GO biological process

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_bp) %>% plot_enrichment_table(rank_lfc, mm_c5_bp)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_bp) %>% plot_enrichment_table(rank_stat, mm_c5_bp)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_bp) %>% plot_enrichment_table(rank_pval, mm_c5_bp)

GO cellular component

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_cc) %>% plot_enrichment_table(rank_lfc, mm_c5_cc)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_cc) %>% plot_enrichment_table(rank_stat, mm_c5_cc)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_cc) %>% plot_enrichment_table(rank_pval, mm_c5_cc)

GO molecular function

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_mf) %>% plot_enrichment_table(rank_lfc, mm_c5_mf)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_mf) %>% plot_enrichment_table(rank_stat, mm_c5_mf)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_mf) %>% plot_enrichment_table(rank_pval, mm_c5_mf)

GSEA (DE)

Hallmark genesets

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_h) %>% plot_enrichment_table(rank_lfc, mm_h)

# Wald stat
get_fgsea_res(rank_stat, mm_h) %>% plot_enrichment_table(rank_stat, mm_h)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_h) %>% plot_enrichment_table(rank_pval, mm_h)

GO biological process

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_bp) %>% plot_enrichment_table(rank_lfc, mm_c5_bp)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_bp) %>% plot_enrichment_table(rank_stat, mm_c5_bp)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_bp) %>% plot_enrichment_table(rank_pval, mm_c5_bp)

GO cellular component

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_cc) %>% plot_enrichment_table(rank_lfc, mm_c5_cc)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_cc) %>% plot_enrichment_table(rank_stat, mm_c5_cc)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_cc) %>% plot_enrichment_table(rank_pval, mm_c5_cc)

GO molecular function

# Shrunken LFC
get_fgsea_res(rank_lfc, mm_c5_mf) %>% plot_enrichment_table(rank_lfc, mm_c5_mf)

# Wald stat
get_fgsea_res(rank_stat, mm_c5_mf) %>% plot_enrichment_table(rank_stat, mm_c5_mf)

# Rank: sign(LFC) * -log10(pvalue)
get_fgsea_res(rank_pval, mm_c5_mf) %>% plot_enrichment_table(rank_pval, mm_c5_mf)

System Info

sessionInfo()
## R version 3.6.3 (2020-02-29)
## Platform: x86_64-apple-darwin15.6.0 (64-bit)
## Running under: macOS Sierra 10.12.6
## 
## Matrix products: default
## BLAS:   /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRblas.0.dylib
## LAPACK: /Library/Frameworks/R.framework/Versions/3.6/Resources/lib/libRlapack.dylib
## 
## locale:
## [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
## 
## attached base packages:
##  [1] grid      parallel  stats4    stats     graphics  grDevices utils     datasets  methods   base     
## 
## other attached packages:
##  [1] VennDiagram_1.6.20          futile.logger_1.4.3         fgsea_1.12.0                Rcpp_1.0.3                  RColorBrewer_1.1-2          pheatmap_1.0.12             DESeq2_1.26.0               SummarizedExperiment_1.16.1 DelayedArray_0.12.3         BiocParallel_1.20.1         matrixStats_0.57.0          Biobase_2.46.0              GenomicRanges_1.38.0        GenomeInfoDb_1.22.1         IRanges_2.20.2              S4Vectors_0.24.4            BiocGenerics_0.32.0         scales_1.1.1                forcats_0.4.0               stringr_1.4.0               dplyr_1.0.2                 purrr_0.3.3                 readr_1.3.1                 tidyr_1.0.0                 tibble_3.1.0                ggplot2_3.3.3               tidyverse_1.2.1            
## 
## loaded via a namespace (and not attached):
##  [1] colorspace_1.4-1       ellipsis_0.3.0         htmlTable_1.13.3       XVector_0.26.0         base64enc_0.1-3        rstudioapi_0.10        farver_2.1.0           bit64_0.9-7            mvtnorm_1.1-1          apeglm_1.8.0           AnnotationDbi_1.48.0   fansi_0.4.0            lubridate_1.7.4        xml2_1.2.2             splines_3.6.3          geneplotter_1.64.0     knitr_1.25             Formula_1.2-3          jsonlite_1.6           broom_0.7.5            annotate_1.64.0        cluster_2.1.0          png_0.1-7              compiler_3.6.3         httr_1.4.1             backports_1.1.5        assertthat_0.2.1       Matrix_1.2-18          cli_1.1.0              formatR_1.7            acepack_1.4.1          htmltools_0.5.1.1      tools_3.6.3            coda_0.19-3            gtable_0.3.0           glue_1.4.2             GenomeInfoDbData_1.2.2 fastmatch_1.1-0        bbmle_1.0.23.1         cellranger_1.1.0       jquerylib_0.1.3        vctrs_0.3.4            xfun_0.22              rvest_0.3.5            lifecycle_0.2.0        XML_3.99-0.3           MASS_7.3-51.5          zlibbioc_1.32.0        hms_0.5.2              lambda.r_1.2.4         yaml_2.2.0             memoise_1.1.0          gridExtra_2.3          emdbook_1.3.12         sass_0.3.1             bdsmatrix_1.3-4        rpart_4.1-15           latticeExtra_0.6-29    stringi_1.4.3          RSQLite_2.2.1          genefilter_1.68.0      checkmate_1.9.4        rlang_0.4.8            pkgconfig_2.0.3        bitops_1.0-6           evaluate_0.14          lattice_0.20-38        labeling_0.3           htmlwidgets_1.5.1      bit_1.1-15.1           tidyselect_1.1.0       plyr_1.8.4             magrittr_1.5           R6_2.4.0               generics_0.0.2         Hmisc_4.3-0            DBI_1.1.0              pillar_1.5.1           haven_2.2.0            foreign_0.8-75         withr_2.1.2            survival_3.1-8         RCurl_1.95-4.12        nnet_7.3-12            modelr_0.1.5           crayon_1.3.4           futile.options_1.0.1   utf8_1.1.4             rmarkdown_2.7          jpeg_0.1-8.1           locfit_1.5-9.4         readxl_1.3.1           data.table_1.13.6      blob_1.2.1             digest_0.6.27          xtable_1.8-4           numDeriv_2016.8-1.1    munsell_0.5.0          bslib_0.2.4